<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>学习嵌入式编程</title>
    <style>
        body {
            font-family: 'Arial', 'Microsoft YaHei', sans-serif;
            background-color: #f4f4f4;
            color: #333;
            margin: 0;
            padding: 0;
            line-height: 1.6;
        }
        .container {
            width: 80%;
            margin: 40px auto;
            background: #fff;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0 0 15px rgba(0,0,0,0.1);
        }
        h1 {
            text-align: center;
            color: #2c3e50;
            margin-bottom: 30px;
            font-size: 2.2em;
        }
        h2 {
            color: #2980b9;
            margin-top: 25px;
            border-left: 5px solid #3498db;
            padding-left: 15px;
        }
        h3 {
            color: #16a085;
            margin-left: 20px;
            font-size: 1.1em;
        }
        ul {
            margin: 10px 0;
            padding-left: 30px;
        }
        li {
            margin: 8px 0;
        }
        footer {
            text-align: center;
            margin-top: 40px;
            color: #999;
            font-size: 0.9em;
        }
        .step {
            background-color: #f8f9fa;
            padding: 15px;
            border-left: 3px solid #1abc9c;
            margin: 15px 0;
            border-radius: 0 5px 5px 0;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>学习嵌入式编程</h1>

        <h2>1. 数字输出</h2>
        <div class="step">
            <h3>学习目标：掌握GPIO控制LED、继电器等数字设备</h3>
            <ul>
                <li>① 了解数字信号：高电平（1）与低电平（0）的概念</li>
                <li>② 学习开发板（如Arduino、ESP32）的GPIO引脚功能</li>
                <li>③ 搭建电路：连接LED与限流电阻到开发板</li>
                <li>④ 编写代码：使用 digitalWrite() 控制引脚输出高低电平</li>
                <li>⑤ 实践项目：实现LED闪烁、流水灯效果</li>
                <li>⑥ 拓展：控制继电器模块，开关外部设备（如灯泡）</li>
            </ul>
        </div>

        <h2>2. 数字输入</h2>
        <div class="step">
            <h3>学习目标：读取按钮、开关等数字输入信号</h3>
            <ul>
                <li>① 了解上拉/下拉电阻的作用，防止引脚悬空</li>
                <li>② 连接按钮到开发板，设计输入电路</li>
                <li>③ 使用 digitalRead() 函数读取引脚状态</li>
                <li>④ 编写程序：检测按钮按下并控制LED响应</li>
                <li>⑤ 学习消抖处理（软件延时或硬件滤波）</li>
                <li>⑥ 实践项目：实现按钮控制LED开关、状态切换</li>
            </ul>
        </div>

        <h2>3. 模拟输出</h2>
        <div class="step">
            <h3>学习目标：实现PWM调光、电机调速等模拟量控制</h3>
            <ul>
                <li>① 理解PWM（脉宽调制）原理：占空比与电压等效关系</li>
                <li>② 学习开发板支持PWM的引脚（如ESP32的LED PWM控制器）</li>
                <li>③ 连接LED或直流电机驱动模块</li>
                <li>④ 使用 analogWrite() 或 ledcWrite() 输出PWM信号</li>
                <li>⑤ 实践项目：实现LED亮度渐变（呼吸灯）、电机调速</li>
                <li>⑥ 拓展：控制舵机角度（基础版，后续结合WIFI）</li>
            </ul>
        </div>

        <h2>4. 模拟输入</h2>
        <div class="step">
            <h3>学习目标：读取电位器、光敏电阻等模拟传感器数据</h3>
            <ul>
                <li>① 了解模拟信号与ADC（模数转换）原理</li>
                <li>② 使用电位器或光敏电阻连接到开发板的ADC引脚</li>
                <li>③ 使用 analogRead() 读取0~1023范围的数值（10位ADC）</li>
                <li>④ 在串口监视器中打印传感器数据，观察变化</li>
                <li>⑤ 将模拟值映射为PWM输出，实现光控调光或旋钮调速</li>
                <li>⑥ 实践项目：制作光控小夜灯或音量调节模拟器</li>
            </ul>
        </div>

        <h2>5. WIFI舵机</h2>
        <div class="step">
            <h3>学习目标：通过WIFI远程控制舵机角度</h3>
            <ul>
                <li>① 学习ESP32的WIFI功能：连接路由器，获取IP地址</li>
                <li>② 搭建Web服务器：使用ESP32创建简易网页控制界面</li>
                <li>③ 连接舵机（如SG90），使用PWM控制角度（0°~180°）</li>
                <li>④ 在网页中添加滑块或按钮，发送控制指令到ESP32</li>
                <li>⑤ ESP32接收HTTP请求，解析参数并驱动舵机转动</li>
                <li>⑥ 实践项目：实现手机/电脑浏览器远程控制舵机角度</li>
                <li>⑦ 拓展：加入摄像头或传感器，构建物联网远程控制系统</li>
            </ul>
        </div>
    </div>
</body>
</html>